home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / reader_requests / wild / support / meta2wild.bas < prev    next >
BASIC Source File  |  2000-02-23  |  4KB  |  117 lines

  1.  
  2. SCREEN 1,640,256,2,5
  3. WINDOW 1,"META to WILD Object",,,1
  4.  
  5. '$INCLUDE BASU:_METAConsts.bas
  6. '$INCLUDE BASU:_METAFindFlag.bas
  7. '$INCLUDE BASU:_CutWord.bas  
  8. '$INCLUDE BASU:_LoadMeta.bas  
  9. '$INCLUDE BASU:_Cut.bas
  10. '$INCLUDE BASU:_Command.bas
  11. '$INCLUDE BASU:_FileReq.bas
  12.  
  13. FUNCTION Num$(a)
  14.  Num$=Cut$(STR$(INT(a)))
  15. END FUNCTION
  16.  
  17. METAIN$=FileReq$("WildPJ:support/meta/","Select meta input","#?.meta")
  18. LoadMETA(METAIN$)
  19.  
  20. 'WILDOUT$=FileReq$("WildPJ:support/TestSectors/","Select asm output","#?")
  21. WILDOUT$="RAM:Sector.s"
  22. GOSUB WriteSector
  23. END
  24.  
  25. WriteSector:
  26. OPEN WILDOUT$ FOR OUTPUT AS 1
  27. PRINT #1,"; Wild Sector source made by META2Wild"
  28. PRINT #1,"; Made on "+TIME$+" of "+DATE$
  29. SECNAME$=METAHaveFlag$("SectorName")
  30. PRINT #1,"; Sector name is "+SECNAME$
  31.  
  32. TB$=CHR$(9)
  33. EQU$=TB$+"EQU"+TB$
  34. FACE$="FACE_"+SECNAME$
  35. DOT$="DOT_"+SECNAME$
  36. EDGE$="EDGE_"+SECNAME$
  37. TEXT$="TEXTURE_"+SECNAME$
  38. COLOR$="COLOR_"+SECNAME$
  39. DC$=TB$+"Dc."
  40. DCL$=DC$+"l"+TB$
  41. DCW$=DC$+"w"+TB$
  42. DCB$=DC$+"b"+TB$
  43. DSB$=TB$+"Ds.b"+TB$
  44. ORX$=Num$(VAL(METAHaveFlag$("AbsOX")))+"+"+SECNAME$+"_PosX"
  45. ORY$=Num$(VAL(METAHaveFlag$("AbsOY")))+"+"+SECNAME$+"_PosY"
  46. ORZ$=Num$(VAL(METAHaveFlag$("AbsOZ")))+"+"+SECNAME$+"_PosZ"
  47.  
  48. PRINT #1,""
  49. PRINT #1,"SECTOR_"+SECNAME$
  50. PRINT #1,DCL$+SECNAME$+"_Succ,"+SECNAME$+"_Pred"
  51. PRINT #1,TB$+"QuickRefRel"+TB$+ORX$+","+ORY$+","+ORZ$
  52. PRINT #1,DCL$+SECNAME$+"_Parent"
  53. PRINT #1,DCL$+"0"
  54. PRINT #1,DCB$+"0,0"
  55. PRINT #1,TB$+"ListHeader"+TB$+SECNAME$+"Shell,"+FACE$+Num$(1)+","+FACE$+Num$(NFAC)
  56. PRINT #1,TB$+"ListHeader"+TB$+SECNAME$+"Wire,"+EDGE$+Num$(1)+","+EDGE$+Num$(NEDG)
  57. PRINT #1,TB$+"ListHeader"+TB$+SECNAME$+"Nebula,"+DOT$+Num$(1)+","+DOT$+Num$(NDOT)
  58. PRINT #1,DSB$+"Sphere_SIZE"
  59. Root$=METAHaveFlag$("Root")
  60. PRINT #1,DCL$+FACE$+Num$(VAL(Root$))
  61. PRINT #1,""
  62. PRINT #1,COLOR$+Num$(0)+EQU$+"$FFEEDD"
  63. FOR i=1 TO NTXT
  64.  PRINT #1,TEXT$+Num$(i)+EQU$+"0"
  65. NEXT i
  66. PRINT #1,""
  67. FOR i=1 TO NFAC
  68.  PRINT #1,FACE$+Num$(i)
  69.  SUCC$=FACE$+Num$(i+1):IF i=NFAC THEN SUCC$=SECNAME$+"Shell_Tail"
  70.  PREC$=FACE$+Num$(i-1):IF i=1 THEN PREC$=SECNAME$+"Shell_Head"
  71.  PRINT #1,DCL$+SUCC$+","+PREC$
  72.  PLUS=Face(i,FACPLUS%):IF PLUS<>0 THEN PLUS$=FACE$+Num$(PLUS) ELSE PLUS$="0"
  73.  MINUS=Face(i,FACMINUS%):IF MINUS<>0 THEN MINUS$=FACE$+Num$(MINUS) ELSE MINUS$="0"
  74.  PRINT #1,DCL$+PLUS$+","+MINUS$
  75.  PRINT #1,DCB$+"0,0,BSPTY_FACE,0"
  76.  PRINT #1,DCL$+"0"
  77.  PRINT #1,DCL$+DOT$+Num$(Face(i,FACPA%))+","+DOT$+Num$(Face(i,FACPB%))+","+DOT$+Num$(Face(i,FACPC%))
  78.  PRINT #1,DCL$+EDGE$+Num$(Face(i,FACLA%))+","+EDGE$+Num$(Face(i,FACLB%))+","+EDGE$+Num$(Face(i,FACLC%))
  79.  PRINT #1,DCL$+TEXT$+Num$(Face(i,FACTEX%))
  80.  TXA%=Face(i,FACTXA%):IF TXA%>127 THEN TXA%=TXA%-256
  81.  TYA%=Face(i,FACTYA%):IF TYA%>127 THEN TYA%=TYA%-256
  82.  TXB%=Face(i,FACTXB%):IF TXB%>127 THEN TXB%=TXB%-256
  83.  TYB%=Face(i,FACTYB%):IF TYB%>127 THEN TYB%=TYB%-256
  84.  TXC%=Face(i,FACTXC%):IF TXC%>127 THEN TXC%=TXC%-256
  85.  TYC%=Face(i,FACTYC%):IF TYC%>127 THEN TYC%=TYC%-256
  86.  PRINT #1,DCB$+Num$(TXA%)+","+Num$(TYA%)
  87.  PRINT #1,DCB$+Num$(TXB%)+","+Num$(TYB%)
  88.  PRINT #1,DCB$+Num$(TXC%)+","+Num$(TYC%)
  89. NEXT i
  90. PRINT #1,""
  91. FOR i=1 TO NEDG
  92.  PRINT #1,EDGE$+Num$(i)
  93.  SUCC$=EDGE$+Num$(i+1):IF i=NEDG THEN SUCC$=SECNAME$+"Wire_Tail"
  94.  PREC$=EDGE$+Num$(i-1):IF i=1 THEN PREC$=SECNAME$+"Wire_Head"
  95.  PRINT #1,DCL$+SUCC$+","+PREC$
  96.  PRINT #1,DCL$+DOT$+Num$(Edge(i,EDGPA%))+","+DOT$+Num$(Edge(i,EDGPB%))
  97.  PRINT #1,DCB$+"0,0,0,0" 
  98.  PRINT #1,DCL$+"0"
  99. NEXT i
  100. PRINT #1,""
  101. FOR i=1 TO NDOT
  102.  PRINT #1,DOT$+Num$(i)
  103.  SUCC$=DOT$+Num$(i+1):IF i=NDOT THEN SUCC$=SECNAME$+"Nebula_Tail"
  104.  PREC$=DOT$+Num$(i-1):IF i=1 THEN PREC$=SECNAME$+"Nebula_Head"
  105.  PRINT #1,DCL$+SUCC$+","+PREC$
  106.  PRINT #1,DCL$+Num$(Dot(i,DOTX%))+","+Num$(Dot(i,DOTY%))+","+Num$(Dot(i,DOTZ%))
  107.  PRINT #1,DCL$+COLOR$+Num$(0)
  108.  PRINT #1,DCB$+"0,0"
  109.  PRINT #1,DCL$+"0"
  110. NEXT i
  111. CLOSE 1
  112. RETURN
  113.  
  114.  
  115.  
  116.  
  117.